Navigation system with update mechanism and method of operation thereof

ABSTRACT

A method of operation of a navigation system includes: receiving a navigation external data including a vendor data, a delta data, or a combination thereof; generating a normalization data with a control unit based on transforming the navigation external data according to universal format; generating an aggregation changeset data by splitting the normalization data into each instance of a dimension type; and updating a navigation local data by applying the aggregation changeset data according to a layer prioritization for presenting the navigation local data on a device.

TECHNICAL FIELD

The present invention relates generally to a navigation system, and moreparticularly to a system with update mechanism.

BACKGROUND ART

Modern portable consumer and industrial electronics, especially clientdevices such as navigation systems, cellular phones, portable digitalassistants, and combination devices, are providing increasing levels offunctionality to support modern life including location-basedinformation services. Research and development in the existingtechnologies can take a myriad of different directions.

As users become more empowered with the growth of mobile location basedservice devices, new and old paradigms begin to take advantage of thisnew device space. There are many technological solutions to takeadvantage of this new device location opportunity. One existing approachis to use location information to provide navigation services such as aglobal positioning system (GPS) for a car or on a mobile device such asa cell phone, portable navigation device (PND) or a personal digitalassistant (PDA).

Location based services allow users to create, transfer, store, and/orconsume information in order for users to create, transfer, store, andconsume in the “real world.” One such use of location based services isto efficiently transfer or route users to the desired destination orservice.

Navigation systems and location based services enabled systems have beenincorporated in automobiles, notebooks, handheld devices, and otherportable products. Today, these systems aid users by incorporatingavailable, real-time relevant information, such as maps, directions,local businesses, or other points of interest (POI). The real-timeinformation provides invaluable relevant information.

However, a navigation system improving update mechanism to control theupdating of data has become a paramount concern for the consumer. Theinability decreases the benefit of using the tool.

Thus, a need still remains for a navigation system with update mechanismto manage updating of data. In view of the increasing mobility of theworkforce and social interaction, it is increasingly critical thatanswers be found to these problems. In view of the ever-increasingcommercial competitive pressures, along with growing consumerexpectations and the diminishing opportunities for meaningful productdifferentiation in the marketplace, it is critical that answers be foundfor these problems. Additionally, the need to reduce costs, improveefficiencies and performance, and meet competitive pressures adds aneven greater urgency to the critical necessity for finding answers tothese problems. Solutions to these problems have been long sought butprior developments have not taught or suggested any solutions and, thus,solutions to these problems have long eluded those skilled in the art.

DISCLOSURE OF THE INVENTION

The present invention provides a method of operation of a navigationsystem including: receiving a navigation external data including avendor data, a delta data, or a combination thereof; generating anormalization data with a control unit based on transforming thenavigation external data according to universal format; generating anaggregation changeset data by splitting the normalization data into eachinstance of a dimension type; and updating a navigation local data byapplying the aggregation changeset data according to a layerprioritization for presenting the navigation local data on a device.

The present invention provides a navigation system, including: acommunication unit for receiving a navigation external data including avendor data, a delta data, or a combination thereof; and a control unit,coupled to the communication unit, for: generating a normalization databased on transforming the navigation external data according touniversal format; generating an aggregation changeset data by splittingthe normalization data into each instance of a dimension type; andupdating a navigation local data by applying the aggregation changesetdata according to a layer prioritization for presenting the navigationlocal data on a device.

The present invention provides a navigation system having anon-transitory computer readable medium including instructions forexecution, the instructions comprising: receiving a navigation externaldata including a vendor data, a delta data, or a combination thereof;generating a normalization data based on transforming the navigationexternal data according to universal format; generating an aggregationchangeset data by splitting the normalization data into each instance ofa dimension type; and updating a navigation local data by applying theaggregation changeset data according to a layer prioritization forpresenting the navigation local data on a device.

Certain embodiments of the invention have other steps or elements inaddition to or in place of those mentioned above. The steps or elementwill become apparent to those skilled in the art from a reading of thefollowing detailed description when taken with reference to theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a navigation system with update mechanism in an embodiment ofthe present invention.

FIG. 2 is an example of a bounding box.

FIG. 3 is a first example of architecture of the navigation system withupdate mechanism.

FIG. 4 is a second example of architecture of the navigation system withupdate mechanism.

FIG. 5 is a third example of architecture of the navigation system withupdate mechanism.

FIG. 6 is an exemplary block diagram of the navigation system.

FIG. 7 is a control flow of the navigation system.

FIG. 8 is a flow chart of a method of operation of the navigation systemin a further embodiment of the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION

The following embodiments are described in sufficient detail to enablethose skilled in the art to make and use the invention. It is to beunderstood that other embodiments would be evident based on the presentdisclosure, and that system, process, or mechanical changes may be madewithout departing from the scope of the present invention.

In the following description, numerous specific details are given toprovide a thorough understanding of the invention. However, it will beapparent that the invention may be practiced without these specificdetails. In order to avoid obscuring the present invention, somewell-known circuits, system configurations, and process steps are notdisclosed in detail.

The drawings showing embodiments of the navigation system aresemi-diagrammatic and not to scale and, particularly, some of thedimensions are for the clarity of presentation and are shown exaggeratedin the drawing FIGs. Similarly, although the views in the drawings forease of description generally show similar orientations, this depictionin the FIGs. is arbitrary for the most part. Generally, the inventioncan be operated in any orientation. The embodiments have been numberedfirst embodiment, second embodiment, etc. as a matter of descriptiveconvenience and are not intended to have any other significance orprovide limitations for the present invention.

One skilled in the art would appreciate that the format with whichnavigation information is expressed is not critical to some embodimentsof the invention. For example, in some embodiments, navigationinformation is presented in the format of (X, Y), where X and Y are twoordinates that define the geographic location, i.e., a position of auser.

In an alternative embodiment, navigation information is presented bylongitude and latitude related information. In a further embodiment ofthe present invention, the navigation information also includes avelocity element including a speed component and a heading component.

The term “relevant information” referred to herein includes thenavigation information described as well as information relating topoints of interest to the user, such as local business, hours ofbusinesses, types of businesses, advertised specials, trafficinformation, maps, local events, and nearby community or personalinformation.

The term “module” referred to herein can include software, hardware, ora combination thereof in the present invention in accordance with thecontext in which the term is used. For example, the software can bemachine code, firmware, embedded code, and application software. Alsofor example, the hardware can be circuitry, processor, computer,integrated circuit, integrated circuit cores, a pressure sensor, aninertial sensor, a microelectromechanical system (MEMS), passivedevices, or a combination thereof. Further, if a module is written inthe apparatus claims section below, the modules are deemed to includehardware circuitry for the purposes and the scope of apparatus claims.

Referring now to FIG. 1, therein is shown a navigation system 100 withupdate mechanism in an embodiment of the present invention. Thenavigation system 100 includes a first device 102, such as a client or aserver, connected to a second device 106, such as a client or server,with a communication path 104, such as a wireless or wired network.

For example, the first device 102 can be of any of a variety of mobiledevices, such as a cellular phone, personal digital assistant, anotebook computer, automotive telematic navigation system, a head unit,or other multi-functional mobile communication or entertainment device.The first device 102 can be a standalone device, or can be incorporatedwith a vehicle, for example a car, truck, bus, or train. The firstdevice 102 can couple to the communication path 104 to communicate withthe second device 106.

For illustrative purposes, the navigation system 100 is described withthe first device 102 as a mobile computing device, although it isunderstood that the first device 102 can be different types of computingdevices. For example, the first device 102 can also be a non-mobilecomputing device, such as a server, a server farm, or a desktopcomputer. In another example, the first device 102 can be aparticularized machine, such as a mainframe, a server, a cluster server,rack mounted server, or a blade server, or as more specific examples, anIBM System z10™ Business Class mainframe or a HP ProLiant ML™ server.

The second device 106 can be any of a variety of centralized ordecentralized computing devices. For example, the second device 106 canbe a computer, grid computing resources, a virtualized computerresource, cloud computing resource, routers, switches, peer-to-peerdistributed computing devices, or a combination thereof.

The second device 106 can be centralized in a single computer room,distributed across different rooms, distributed across differentgeographical locations, embedded within a telecommunications network.The second device 106 can have a means for coupling with thecommunication path 104 to communicate with the first device 102. Thesecond device 106 can also be a client type device as described for thefirst device 102. Another example, the first device 102 or the seconddevice 106 can be a particularized machine, such as a portable computingdevice, a thin client, a notebook, a netbook, a smartphone, a tablet, apersonal digital assistant, or a cellular phone, and as specificexamples, an Apple iPhone™, Android™ smartphone, or Windows™ platformsmartphone.

For illustrative purposes, the navigation system 100 is described withthe second device 106 as a non-mobile computing device, although it isunderstood that the second device 106 can be different types ofcomputing devices. For example, the second device 106 can also be amobile computing device, such as notebook computer, another clientdevice, or a different type of client device. The second device 106 canbe a standalone device, or can be incorporated with a vehicle, forexample a car, truck, bus, or train.

Also for illustrative purposes, the navigation system 100 is shown withthe second device 106 and the first device 102 as end points of thecommunication path 104, although it is understood that the navigationsystem 100 can have a different partition between the first device 102,the second device 106, and the communication path 104. For example, thefirst device 102, the second device 106, or a combination thereof canalso function as part of the communication path 104.

The communication path 104 can be a variety of networks. For example,the communication path 104 can include wireless communication, wiredcommunication, optical, ultrasonic, or the combination thereof.Satellite communication, cellular communication, Bluetooth, InfraredData Association standard (IrDA), wireless fidelity (WiFi), andworldwide interoperability for microwave access (WiMAX) are examples ofwireless communication that can be included in the communication path104. Ethernet, digital subscriber line (DSL), fiber to the home (FTTH),and plain old telephone service (POTS) are examples of wiredcommunication that can be included in the communication path 104.

Further, the communication path 104 can traverse a number of networktopologies and distances. For example, the communication path 104 caninclude direct connection, personal area network (PAN), local areanetwork (LAN), metropolitan area network (MAN), wide area network (WAN)or any combination thereof.

Referring now to FIG. 2, there is shown an example of a bounding box 202displayed by the navigation system 100. For clarity and brevity, thediscussion of the embodiment of the present invention will focus on thefirst device 102 delivering the result generated by the navigationsystem 100. However, the second device 106 and the first device 102 canbe discussed interchangeably. The first device 102 and the second device106 can communicate via the communication path 104.

The bounding box 202 is defined as a physical area including a boundarydefined by sets of latitude and longitude coordinates. The bounding box202 can represent a digital representation of the physical area. Forexample, the bounding box 202 can include two sets of latitude andlongitude establishing the boundary or extents of the physical area. Thebounding box 202 can include a geographic region 204. The geographicregion 204 is defined as multiple instances of the physical area. Forexample, the geographic region 204 can include multiple countries. Morespecifically as an example, the geographic region 204 representing NorthAmerica can include countries such as Canada and United States.

The bounding box 202 can include a geographic space 206. The geographicspace 206 is defined as an arbitrary polygon surface. For example, theboundary of the geographic space 206 can be represented by a series oflatitude and longitude. The bounding box 202 can include a home area208. The home area 208 is defined as the physical area including theuser's home. For example, the home area 208 can include a geographiclocation 210 designated as the user's home. The geographic location 210is defined as a physical location within the physical area.

For further example, the home area 208 can be determined based on anactivity history 212. The activity history 212 is defined as a record ofthe user's activity. For example, the activity history 212 can include atravel frequency 214. The travel frequency 214 is defined as a number oftravels. For example, if the travel frequency 214 to the geographiclocation 210 meets or exceeds a frequency threshold 216, the geographicspace 206 including the geographic location 210 can be designated as thehome area 208. The frequency threshold 216 is defined as a limit for anumber of travels. For example, the frequency threshold 216 canrepresent a minimum or maximum number of travels.

The bounding box 202 can include a navigation feature 218. Thenavigation feature 218 is defined as a component of the physical area.For example, the navigation feature 218 can include an edge representinga component of a road network, a traffic controller, a boundary of thephysical area, or a combination thereof.

A current location 220 is defined as a physical location where the userwith the first device 102 is detected. A target destination 222 isdefined as a physical location where the user's travel ends. A travelroute 224 is defined as a path from one physical location to anotherphysical location. For example, the travel route 224 can represent anavigation guidance 226 from the current location 220 to the targetdestination 222. The navigation guidance 226 is defined as informationto aid the user's travel.

A navigation session 228 is defined as a period of time where thenavigation guidance 226 is provided. For example, the navigation session228 can be going on when the user is traveling from the current location220 to the target destination 222. A search session 230 is defined as aperiod time where search is performed on the navigation system 100. Forexample, the search session 230 can be going on when the user issearching for a category of interest 232 on the first device 102. Thecategory of interest 232 is defined as a classification of the targetdestination 222. For example, the category of interest 232 can includethe geographic location 210 representing the user's work place. Foranother example, the category of interest 232 can include restaurant,theme park, or a combination thereof.

Referring now to FIG. 3, there is shown a first example of architectureof the navigation system 100 with update mechanism. The navigationsystem 100 can receive a navigation external data 302 from a vendor 304.The navigation external data 302 is defined as information received froman external source. For example, the navigation external data 302 caninclude a vendor data 306, a delta data 308, or a combination thereof.The vendor data 306 is defined as information provided by the vendor304. The vendor 304 is defined as a provider of the navigation externaldata 302.

The delta data 308 is defined as a difference between two instances ofthe information. For example, the delta data 308 can represent thedifference between the navigation external data 302 and a navigationlocal data 310. The navigation local data 310 is defined as informationresiding within the navigation system 100. For example, the navigationlocal data 310 can represent the live data utilized by the navigationsystem 100 to provide the navigation guidance 226 of FIG. 2.

A delta threshold 312 is defined as a limit of the delta data 308. Forexample, the delta threshold 312 can represent the maximum or minimumvalue of the delta data 308. A data difference 314 is defined as aresult after comparing between two data. For example, the datadifference 314 after comparing the navigation external data 302 and thenavigation local data 310 can represent the delta data 308.

The navigation external data 302 can include a first data 316, a seconddata 318, or a combination thereof. The first data 316 or the seconddata 318 can be different based on a data version 320. The data version320 is defined as a variant level of information. For example, the firstdata 316 can have the data version 320 that is older than the seconddata 318 based on a timestamp 322. The timestamp 322 can represent avariable containing date and time. For a different example, the dataversion 320 can represent the second data 318 having an updatedinformation to the information contained in the first data 316.

The navigation external data 302 can include various instances of a datatype 324. The data type 324 is defined as a categorization ofinformation related to the physical area. The data type 324 can includea map data 326, a geocoding data 328, a point of interest (POI) data330, an address data 332, a junction view data 334, an advanced driverassistance systems (ADAS) data 336, a landmark data 338, or acombination thereof. The map data 326 can include a diagrammaticrepresentation of the physical area. For example, the map data 326 caninclude the bounding box 202 of FIG. 2, the geographic region 204 ofFIG. 2, the geographic space 206 of FIG. 2, the home area 208 of FIG. 2,or a combination thereof. For further example, the map data 326 caninclude information related to a road network within the physical area.For further example, the map data 326 can include the navigation feature218 of FIG. 2.

The geocoding data 328 can include a geographic coordinate of thegeographic location 210 of FIG. 2. For example, the geocoding data 328can represent the latitude and longitude coordinate information of thegeographic location 210. The POI data 330 can include specificinformation about the geographic location 210, the category of interest232 of FIG. 2, or a combination thereof. For example, the POI data 330can include the name of the category of interest 232 representing arestaurant.

The address data 332 can include an alphanumeric information to identifyand differentiate one instance of the geographic location 210 to anotherinstance of the geographic location 210. The junction view data 334 caninclude a realistic image of the physical area in combination with thenavigation guidance 226 of FIG. 2. For a specific example, the junctionview data 334 can represent the navigation guidance 226 including signson the road network, arrows providing advanced warning, or a combinationthereof to aid the user's travel.

The ADAS data 336 can include information related to safeguard the userwhen operating a vehicle. For example, the ADAS data 336 can include analert to notify the user of a potential problem, avoid accident, or acombination thereof. For further example, the ADAS data 336 can includean adaptive feature to automate lighting, to provide adaptive cruisecontrol, to automate braking, to provide traffic warning, to providealert for blind spot, to keep vehicle within a lane, or a combinationthereof.

The landmark data 338 can include a conspicuous object, the geographiclocation 210, or a combination thereof. For example, the landmark data338 can include the geographic location 210 representing the Statue ofLiberty.

The navigation system 100 can deduplicate multiple instances of thenavigation external data 302 to generate a deduplicated data 340. Morespecifically as an example, the multiple instances of the navigationexternal data 302 can share redundancy, thus, including the sameinstance of the data type 324 such as the map data 326. The deduplicateddata 340 can represent the multiple instances of the navigation externaldata 302 with the redundancy of the data type 324 being eliminated.

A universal format 342 is defined as a data structure. For example, theuniversal format 342 can include a schema from OpenStreetMap (OSM)™compliant database. A normalization data 344 is defined as thenavigation external data 302 transformed according to the universalformat 342. For example, the navigation external data 302 can bereceived from the vendor 304 of FIG. 2 different from the data structureof the universal format 342. The navigation external data 302 can beformatted to comply with the universal format 342.

A dimension type 346 can represent a classification of a component ofthe navigation local data 310. For example, the dimension type 346 caninclude a layer dimension 348, a spatial dimension 350, a time dimension352, or a combination thereof. The layer dimension 348 can represent theattribute within the map data 326. For a specific example, the layerdimension 348 can include the road network, traffic, the address data332, the POI data 330, the landmark data 338, or a combination thereof.The spatial dimension 350 can include the bounding box 202. Thenavigation system 100 can update each instance of the dimension type 346of the navigation local data 310. The time dimension 352 can include thetime of day, week, month, year, season, or a combination thereof.

An aggregate changeset data 354 is defined as an information to updatethe navigation local data 310. For example, the aggregate changeset data354 can include a changeset type 356. The changeset type 356 is definedas a classification of the aggregate changeset data 354. For example,the changeset type 356 can include a map changeset data 358, a geocodingchangeset data 360, a POI changeset data 362, or a combination thereof.For further example, the changeset type 356 can include an addresschangeset data 380, a junction view changeset data 382, an ADASchangeset data 384, a landmark changeset data 386, or a combinationthereof.

The map changeset data 358 can represent the map data 326 that has beentransformed according to the universal format 342. The geocoding data328 can represent the geocoding data 328 that has been transformedaccording to the universal format 342. The POI changeset data 362 canrepresent the POI data 330 that has been transformed according to theuniversal format 342.

The address changeset data 380 can represent the address data 332 thathas been transformed according to the universal format 342. The junctionview changeset data 382 can represent the junction view data 334 thathas been transformed according to the universal format 342. The ADASchangeset data 384 can represent the ADAS data 336 334 that has beentransformed according to the universal format 342. The landmarkchangeset data 386 can represent the landmark data 338 that has beentransformed according to the universal format 342.

A size type 364 is defined as a classification of data by a data size390. The data size 390 can represent how large the data is in byte(s).For example, the navigation external data 302, the navigation local data310, the aggregate changeset data 354, or a combination thereof can berepresented in various instances of the size type 364. The size type 364can include an incremental data 366, a bundle data 368, a complete data370, or a combination thereof.

The complete data 370 can represent a data having entire set ofinformation for that instance of the data version 320. In contrast, theincremental data 366 can have the data size 390 that is less than orequal to 2% of the data size 390 of the complete data 370. Theincremental data 366 can have the size type 364 that is smaller in sizethan the bundle data 368 or the complete data 370. The complete data 370can represent the size type 364 that is larger in size than the bundledata 368 or the incremental data 366.

For further example, the data size 390 of the incremental data 366 canbe based on the availability of updates for the changeset type 356. Foradditional example, the navigation system 100 can control the data size390 of the incremental data 366 based on a size threshold 388. The sizethreshold 388 is defined as a limit on the data size 390. For example,the size threshold 388 can represent a minimum or maximum instance ofthe data size 390.

A service type 372 is defined as a classification of a functionalityoffered by the navigation system 100. For example, the service type 372can include a map service 374, a geocoding service 376, a POI service378, or a combination thereof. The map service 374 is defined as afunctionality of the navigation system 100 related to the map data 326.For example, the navigation system 100 can execute the map service 374to present the map data 326. For another example, the map service 374can retrieve and apply the map changeset data 358 to the navigationlocal data 310. For a different example, the geocoding service 376 canretrieve and apply the geocoding changeset data 360. For furtherexample, the POI service 378 can retrieve and apply the POI service 378.The data version 320 can be organized according to the service type 372.

Referring now to FIG. 4, there is shown a second example of architectureof the navigation system 100 with update mechanism. More specifically asan example, the second device 106 can implement the second example ofthe architecture.

An update notification 402 is defined as a notice to inform that astatus of an update availability 404. The update availability 404 isdefined as an indication of whether the update data is available or not.For example, the navigation system 100 can provide the updatenotification 402 when the update availability 404 for the aggregatechangeset data 354 of FIG. 3, each data instance of the changeset type356, or a combination thereof is available to update the navigationlocal data 310 of FIG. 3. For further example, the navigation system 100can determine the data size 390 of the incremental data 366 of FIG. 3representing the aggregate changeset data 354, each instance of thechangeset type 356, or a combination thereof based on the updateavailability 404.

A layer prioritization 406 is defined as a priority on delivering thedata type 324 of FIG. 3 for updating the navigation local data 310. Forexample, based on the layer prioritization 406, the navigation system100 can deliver the map data 326 of FIG. 3 prior to the POI data 330 ofFIG. 3 to update the navigation local data 310 with the map data 326.

An allowable bandwidth consumption 408 is defined as a permissiblethroughput level. For example, based on the allowable bandwidthconsumption 408, the navigation system 100 can determine whether theaggregate changeset data 354 can be downloaded for updating thenavigation local data 310. A consumption threshold 410 is defined as alimit to the allowable bandwidth consumption 408. For example, theconsumption threshold 410 can represent the minimum or maximumthroughput required for the allowable bandwidth consumption 408.

A transmission cost 412 is defined as a monetary cost for transmittingthe information. For example, the transmission cost 412 for downloadingthe complete data 370 of FIG. 3 can be higher than downloading theincremental data 366 of FIG. 3. A cost threshold 414 is defined as limiton the transmission cost 412. For example, the transmission cost 412 canrepresent the minimum or maximum limit for the transmission cost 412.

A transmission speed 416 is defined as a speed for transmitting theinformation. For example, the transmission speed 416 for downloading theincremental data 366 can be faster than downloading the complete data370. A speed threshold 418 is defined as limit on the transmission speed416. For example, the transmission speed 416 can represent the minimumor maximum limit for the transmission speed 416.

The second device 106 can represent the cloud computing resource. Theaggregate changeset data 354 can be published to the second device 106for updating the navigation local data 310. The second device 106 canstore the aggregate changeset data 354 to maintain integrity, security,or a combination thereof of the aggregate changeset data 354. The seconddevice 106 can track the data version 320 of the aggregate changesetdata 354, the navigation local data 310, or a combination thereof tocontrol the application of the aggregate changeset data 354 to thenavigation local data 310.

For further example, the each of the service type 372 can register toreceive the update notification 402 according to the update availability404. For example, if the update availability 404 for dimension type 346is available, each of the service type 372 can receive the updatenotification 402 to retrieve and apply the changeset type 356 relevantto each of the service type 372.

Referring now to FIG. 5, there is shown a third example of architectureof the navigation system 100 with update mechanism. More specifically asan example, the first device 102 can implement the second example of thearchitecture.

The first device 102 can represent the mobile computing device. Thenavigation system 100 can check for the update availability 404 of FIG.4 for the bounding box 202 of FIG. 2 locally within the first device102. The first device 102 can check with the second device 106 of FIG. 1for the update availability 404.

If the update availability 404 is yes, the first device 102 can retrievethe aggregate changeset data 354 of FIG. 3 from the second device 106.More specifically as an example, the first device 102 can download theaggregate changeset data 354 based on the allowable bandwidthconsumption 408 of FIG. 4 compared to the consumption threshold 410 ofFIG. 4. The first device 102 can store the aggregate changeset data 354to maintain integrity, security, or a combination thereof of theaggregate changeset data 354. The first device 102 can track the dataversion 320 of FIG. 3 of the aggregate changeset data 354, thenavigation local data 310, or a combination thereof to control theapplication of the aggregate changeset data 354 to the navigation localdata 310.

For further example, the each of the service type 372 of FIG. 3 canregister to receive the update notification 402 of FIG. 4 according tothe update availability 404. For example, if the update availability 404for dimension type 346 of FIG. 3 is available, the each of the servicetype 372 can receive the update notification 402 to retrieve and applythe changeset type 356 of FIG. 3 relevant to each of the service type372.

Referring now to FIG. 6, therein is shown an exemplary block diagram ofthe navigation system 100. The navigation system 100 can include thefirst device 102, the communication path 104, and the second device 106.The first device 102 can send information in a first device transmission608 over the communication path 104 to the second device 106. The seconddevice 106 can send information in a second device transmission 610 overthe communication path 104 to the first device 102.

For illustrative purposes, the navigation system 100 is shown with thefirst device 102 as a client device, although it is understood that thenavigation system 100 can have the first device 102 as a different typeof device. For example, the first device 102 can be a server.

Also for illustrative purposes, the navigation system 100 is shown withthe second device 106 as a server, although it is understood that thenavigation system 100 can have the second device 106 as a different typeof device. For example, the second device 106 can be a client device.

For brevity of description in this embodiment of the present invention,the first device 102 will be described as a client device and the seconddevice 106 will be described as a server device. The present inventionis not limited to this selection for the type of devices. The selectionis an example of the present invention.

The first device 102 can include a first control unit 612, a firststorage unit 614, a first communication unit 616, a first user interface618, and a location unit 620. The first control unit 612 can include afirst control interface 622. The first control unit 612 can execute afirst software 626 to provide the intelligence of the navigation system100. The first control unit 612 can be implemented in a number ofdifferent manners. For example, the first control unit 612 can be aprocessor, an embedded processor, a microprocessor, a hardware controllogic, a hardware finite state machine (FSM), a digital signal processor(DSP), or a combination thereof. The first control interface 622 can beused for communication between the first control unit 612 and otherfunctional units in the first device 102. The first control interface622 can also be used for communication that is external to the firstdevice 102.

The first control interface 622 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsphysically separate from the first device 102.

The first control interface 622 can be implemented in different ways andcan include different implementations depending on which functionalunits or external units are being interfaced with the first controlinterface 622. For example, the first control interface 622 can beimplemented with a pressure sensor, an inertial sensor, amicroelectromechanical system (MEMS), optical circuitry, waveguides,wireless circuitry, wireline circuitry, or a combination thereof.

The location unit 620 can generate location information, currentheading, and current speed of the first device 102, as examples. Thelocation unit 620 can be implemented in many ways. For example, thelocation unit 620 can function as at least a part of a globalpositioning system (GPS), an inertial navigation system, acellular-tower location system, a pressure location system, or anycombination thereof.

The location unit 620 can include a location interface 632. The locationinterface 632 can be used for communication between the location unit620 and other functional units in the first device 102. The locationinterface 632 can also be used for communication that is external to thefirst device 102.

The location interface 632 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsphysically separate from the first device 102.

The location interface 632 can include different implementationsdepending on which functional units or external units are beinginterfaced with the location unit 620. The location interface 632 can beimplemented with technologies and techniques similar to theimplementation of the first control interface 622.

The first storage unit 614 can store the first software 626. The firststorage unit 614 can also store the relevant information, such asadvertisements, points of interest (POI), navigation routing entries, orany combination thereof.

The first storage unit 614 can be a volatile memory, a nonvolatilememory, an internal memory, an external memory, or a combinationthereof. For example, the first storage unit 614 can be a nonvolatilestorage such as non-volatile random access memory (NVRAM), Flash memory,disk storage, or a volatile storage such as static random access memory(SRAM).

The first storage unit 614 can include a first storage interface 624.The first storage interface 624 can be used for communication betweenthe location unit 620 and other functional units in the first device102. The first storage interface 624 can also be used for communicationthat is external to the first device 102.

The first storage interface 624 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsphysically separate from the first device 102.

The first storage interface 624 can include different implementationsdepending on which functional units or external units are beinginterfaced with the first storage unit 614. The first storage interface624 can be implemented with technologies and techniques similar to theimplementation of the first control interface 622.

The first communication unit 616 can enable external communication toand from the first device 102. For example, the first communication unit616 can permit the first device 102 to communicate with the seconddevice 106, an attachment, such as a peripheral device or a computerdesktop, and the communication path 104.

The first communication unit 616 can also function as a communicationhub allowing the first device 102 to function as part of thecommunication path 104 and not limited to be an end point or terminalunit to the communication path 104. The first communication unit 616 caninclude active and passive components, such as microelectronics or anantenna, for interaction with the communication path 104.

The first communication unit 616 can include a first communicationinterface 628. The first communication interface 628 can be used forcommunication between the first communication unit 616 and otherfunctional units in the first device 102. The first communicationinterface 628 can receive information from the other functional units orcan transmit information to the other functional units.

The first communication interface 628 can include differentimplementations depending on which functional units are being interfacedwith the first communication unit 616. The first communication interface628 can be implemented with technologies and techniques similar to theimplementation of the first control interface 622.

The first user interface 618 allows a user (not shown) to interface andinteract with the first device 102. The first user interface 618 caninclude an input device and an output device. Examples of the inputdevice of the first user interface 618 can include a keypad, a touchpad,soft-keys, a keyboard, a microphone, a camera, or any combinationthereof to provide data and communication inputs.

The first user interface 618 can include a first display interface 630.The first display interface 630 can include a display, a projector, avideo screen, a speaker, a headset, or any combination thereof.

The first control unit 612 can operate the first user interface 618 todisplay information generated by the navigation system 100. The firstcontrol unit 612 can also execute the first software 626 for the otherfunctions of the navigation system 100, including receiving locationinformation from the location unit 620. The first control unit 612 canfurther execute the first software 626 for interaction with thecommunication path 104 via the first communication unit 616.

The second device 106 can be optimized for implementing the presentinvention in a multiple device embodiment with the first device 102. Thesecond device 106 can provide the additional or higher performanceprocessing power compared to the first device 102. The second device 106can include a second control unit 634, a second communication unit 636,and a second user interface 638.

The second user interface 638 allows a user (not shown) to interface andinteract with the second device 106. The second user interface 638 caninclude an input device and an output device. Examples of the inputdevice of the second user interface 638 can include a keypad, atouchpad, soft-keys, a keyboard, a microphone, a camera, or anycombination thereof to provide data and communication inputs. Examplesof the output device of the second user interface 638 can include asecond display interface 640. The second display interface 640 caninclude a display, a projector, a video screen, a speaker, a headset, orany combination thereof.

The second control unit 634 can execute a second software 642 to providethe intelligence of the second device 106 of the navigation system 100.The second software 642 can operate in conjunction with the firstsoftware 626. The second control unit 634 can provide additionalperformance compared to the first control unit 612.

The second control unit 634 can operate the second user interface 638 todisplay information. The second control unit 634 can also execute thesecond software 642 for the other functions of the navigation system100, including operating the second communication unit 636 tocommunicate with the first device 102 over the communication path 104.

The second control unit 634 can be implemented in a number of differentmanners. For example, the second control unit 634 can be a processor, anembedded processor, a microprocessor, a hardware control logic, ahardware finite state machine (FSM), a digital signal processor (DSP),or a combination thereof.

The second control unit 634 can include a second control interface 644.The second control interface 644 can be used for communication betweenthe second control unit 634 and other functional units in the seconddevice 106. The second control interface 644 can also be used forcommunication that is external to the second device 106.

The second control interface 644 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsphysically separate from the second device 106.

The second control interface 644 can be implemented in different waysand can include different implementations depending on which functionalunits or external units are being interfaced with the second controlinterface 644. For example, the second control interface 644 can beimplemented with a pressure sensor, an inertial sensor, amicroelectromechanical system (MEMS), optical circuitry, waveguides,wireless circuitry, wireline circuitry, or a combination thereof.

A second storage unit 646 can store the second software 642. The secondstorage unit 646 can also store the relevant information, such asadvertisements, points of interest (POI), navigation routing entries, orany combination thereof. The second storage unit 646 can be sized toprovide the additional storage capacity to supplement the first storageunit 614.

For illustrative purposes, the second storage unit 646 is shown as asingle element, although it is understood that the second storage unit646 can be a distribution of storage elements. Also for illustrativepurposes, the navigation system 100 is shown with the second storageunit 646 as a single hierarchy storage system, although it is understoodthat the navigation system 100 can have the second storage unit 646 in adifferent configuration. For example, the second storage unit 646 can beformed with different storage technologies forming a memory hierarchalsystem including different levels of caching, main memory, rotatingmedia, or off-line storage.

The second storage unit 646 can be a volatile memory, a nonvolatilememory, an internal memory, an external memory, or a combinationthereof. For example, the second storage unit 646 can be a nonvolatilestorage such as non-volatile random access memory (NVRAM), Flash memory,disk storage, or a volatile storage such as static random access memory(SRAM).

The second storage unit 646 can include a second storage interface 648.The second storage interface 648 can be used for communication betweenthe location unit 620 and other functional units in the second device106. The second storage interface 648 can also be used for communicationthat is external to the second device 106.

The second storage interface 648 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsphysically separate from the second device 106.

The second storage interface 648 can include different implementationsdepending on which functional units or external units are beinginterfaced with the second storage unit 646. The second storageinterface 648 can be implemented with technologies and techniquessimilar to the implementation of the second control interface 644.

The second communication unit 636 can enable external communication toand from the second device 106. For example, the second communicationunit 636 can permit the second device 106 to communicate with the firstdevice 102 over the communication path 104.

The second communication unit 636 can also function as a communicationhub allowing the second device 106 to function as part of thecommunication path 104 and not limited to be an end point or terminalunit to the communication path 104. The second communication unit 636can include active and passive components, such as microelectronics oran antenna, for interaction with the communication path 104.

The second communication unit 636 can include a second communicationinterface 650. The second communication interface 650 can be used forcommunication between the second communication unit 636 and otherfunctional units in the second device 106. The second communicationinterface 650 can receive information from the other functional units orcan transmit information to the other functional units.

The second communication interface 650 can include differentimplementations depending on which functional units are being interfacedwith the second communication unit 636. The second communicationinterface 650 can be implemented with technologies and techniquessimilar to the implementation of the second control interface 644.

The first communication unit 616 can couple with the communication path104 to send information to the second device 106 in the first devicetransmission 608. The second device 106 can receive information in thesecond communication unit 636 from the first device transmission 608 ofthe communication path 104.

The second communication unit 636 can couple with the communication path104 to send information to the first device 102 in the second devicetransmission 610. The first device 102 can receive information in thefirst communication unit 616 from the second device transmission 610 ofthe communication path 104. The navigation system 100 can be executed bythe first control unit 612, the second control unit 634, or acombination thereof.

For illustrative purposes, the second device 106 is shown with thepartition having the second user interface 638, the second storage unit646, the second control unit 634, and the second communication unit 636,although it is understood that the second device 106 can have adifferent partition. For example, the second software 642 can bepartitioned differently such that some or all of its function can be inthe second control unit 634 and the second communication unit 636. Also,the second device 106 can include other functional units not shown inFIG. 6 for clarity.

The functional units in the first device 102 can work individually andindependently of the other functional units. The first device 102 canwork individually and independently from the second device 106 and thecommunication path 104.

The functional units in the second device 106 can work individually andindependently of the other functional units. The second device 106 canwork individually and independently from the first device 102 and thecommunication path 104.

For illustrative purposes, the navigation system 100 is described byoperation of the first device 102 and the second device 106. It isunderstood that the first device 102 and the second device 106 canoperate any of the modules and functions of the navigation system 100.For example, the first device 102 is described to operate the locationunit 620, although it is understood that the second device 106 can alsooperate the location unit 620.

A first capturing device 652 can represent the capturing device 210 ofFIG. 2. Examples of the first capturing device 652 can include a digitalcamera, video camera, thermal camera, night vision camera, infraredcamera, x-ray camera, or the combination thereof. Examples of the firstcapturing device 652 can further include accelerometer, thermometer,microphone, wireless signal receiver, remote physiological monitoringdevice, light identifier, magnetic sensor, or the combination thereof.

A second capturing device 654 can represent the capturing device 210.Examples of the second capturing device 654 can include a digitalcamera, video camera, thermal camera, night vision camera, infraredcamera, x-ray camera, or the combination thereof. Examples of the secondcapturing device 654 can further include accelerometer, thermometer,microphone, wireless signal receiver, remote physiological monitoringdevice, light identifier, magnetic sensor, or the combination thereof.

Referring now to FIG. 7, therein is shown a control flow of thenavigation system 100. The navigation system 100 can include a boxmodule 702. The box module 702 calculates the bounding box 202 of FIG.2. For example, the box module 702 can calculate the bounding box 202including the geographic region 204 of FIG. 2.

The box module 702 can calculate the bounding box 202 in a number ofways. For example, the box module 702 can calculate the bounding box 202based on two sets of latitude and longitude coordinates to define theextents of the physical area. For a different example, the box module702 can calculate the bounding box 202 representing the geographicregion 204 predefined by boundaries of the country, the state, the city,the neighborhood, or a combination thereof. More specifically as anexample, the geographic region 204 can include multiple instances of thecountry, the state, the city, the neighborhood, or a combinationthereof.

For another example, the box module 702 can calculate the bounding box202 representing the geographic space 206 of FIG. 2. For a specificexample, the box module 702 can calculate the geographic space 206 basedon series of latitudes and longitudes to form a shape of polygonsurface. For a different example, the box module 702 can determine thegeographic space 206 based on country boundary, state boundary, cityboundary, zip code, area code, or a combination thereof.

For a different example, the box module 702 can determine the boundingbox 202 representing the home area 208 of FIG. 2. More specifically asan example, the box module 702 can determine the home area 208 based onthe activity history 212 of FIG. 2. The activity history 212 can includethe travel frequency 214 of FIG. 2 of the user of the first device 102of FIG. 1 to a specific instance of the geographic location 210 of FIG.2. The box module 702 can determine the home area 208 based on thetravel frequency 214 to the geographic location 210 meets or exceeds thefrequency threshold 216 of FIG. 2. For further example, the box module702 can determine the home area 208 based on the bounding box 202surrounding the geographic location 210 specified as the user's home,manual entry by the user of the first device 102, or a combinationthereof. The box module 702 can transmit the bounding box 202 to a dataload module 704.

The navigation system 100 can include the data load module 704, whichcan be coupled to the box module 702. The data load module 704 receivesthe navigation external data 302 of FIG. 3. For example, the data loadmodule 704 can receive the navigation external data 302 including thevendor data 306 of FIG. 3, the delta data 308 of FIG. 3, or acombination thereof from the vendor 304 of FIG. 3.

For further example, the navigation external data 302 can include thesize type 364 of FIG. 3, the data type 324 of FIG. 3, or a combinationthereof. For example, the data load module 704 can receive thenavigation external data 302 having the size type 364 of the incrementaldata 366 of FIG. 3, the bundle data 368 of FIG. 3, the complete data 370of FIG. 3, or a combination thereof. For another example, the data loadmodule 704 can receive the navigation external data 302 including thedata type 324 representing the map data 326 of FIG. 3, the geocodingdata 328 of FIG. 3, the POI data 330 of FIG. 3, the address data 332 ofFIG. 3, the junction view data 334 of FIG. 3, the ADAS data 336 of FIG.3, the landmark data 338 of FIG. 3, or a combination thereof. The dataload module 704 can transmit the navigation external data 302 to a diffgeneration module 706.

The navigation system 100 can include the diff generation module 706,which can be coupled to the data load module 704. The diff generationmodule 706 computes the data difference 314 of FIG. 3. For example, thediff generation module 706 can compute the data difference 314 betweeneach instance of the multiple instances of the navigation external data302 received.

More specifically as an example, the diff generation module 706 cancompute the data difference 314 between multiple instances of thenavigation external data 302 from different time periods. For example,the diff generation module 706 can compute the data difference 314between the first data 316 of FIG. 3 of the navigation external data 302and the second data 318 of FIG. 3 of the navigation external data 302where the first data 316 can be received earlier than the second data318.

For another example, the diff generation module 706 can compute the datadifference 314 between the navigation external data 302 and thenavigation local data 310 of FIG. 3. More specifically as an example,the diff generation module 706 can compute the data difference 314 byidentifying the delta data 308 between the navigation external data 302and the navigation local data 310.

For further example, the diff generation module 706 can determinewhether the data difference 314 between the navigation external data 302and the navigation local data 310 meets or exceeds the delta threshold312 of FIG. 3. More specifically as an example, the delta threshold 312can be set at 20% of the navigation local data 310. The diff generationmodule 706 can check whether the delta data 308 is less than the deltathreshold 312. The diff generation module 706 can transmit the datadifference 314 to an aggregation module 708.

The navigation system 100 can include the aggregation module 708, whichcan be coupled to the diff generation module 706. The aggregation module708 generates the normalization data 344 of FIG. 3. For example, theaggregation module 708 can generate the normalization data 344 based onthe deduplicated data 340 of FIG. 3.

The aggregation module 708 can generate the normalization data 344 in anumber of ways. The aggregation module 708 can include a map-geopipeline module 710, a POI pipeline module 712, or a combinationthereof. For example, the map-geo pipeline module 710, the POI pipelinemodule 712, or a combination thereof can each generate the normalizationdata 344.

The map-geo pipeline module 710, the POI pipeline module 712, or acombination thereof can generate the normalization data 344 in a numberof ways. For example, the map-geo pipeline module 710 can generate thenormalization data 344 for the map data 326, the geocoding data 328, ora combination thereof based on the navigation external data 302. Morespecifically as an example, the map-geo pipeline module 710 can generatethe normalization data 344 by transforming the navigation external data302 into the universal format 342 of FIG. 3. The universal format 342can represent a schema from an extended OSM compliant database includingdata from all domains including the map data 326, the geocoding data328, the POI data 330, the address data 332, the junction view data 334,the ADAS data 336, the landmark data 338, or a combination thereof.

For further example, the map-geo pipeline module 710 can generate thenormalization data 344 by deriving the data such as “postal code center”possibly unavailable in the navigation external data 302 from the vendor304 from the OSM database to format the navigation external data 302into the universal format 342. For additional example, the map-geopipeline module 710 can build “administration hierarchy” or“side-files.” The administration hierarchy can represent the geographicregion 204 defined by the government such as city, county, state,country, or a combination thereof. The side-files can represent therecording of the administration hierarchy as additional index file.

The map-geo pipeline module 710 can generate the normalization data 344based on the universal format 342 to adhere the navigation external data302 to the universal format 342 for the navigation system 100. Forfurther example, the by generating the normalization data 344 based onthe universal format 342, the map-geo pipeline module 710 can generatepersistent ID to identify the same instance of the map data 326, thegeocoding data 328, the POI data 330, the address data 332, the junctionview data 334, the ADAS data 336, the landmark data 338, or acombination thereof to optimize the delta data 308 that needs to betransferred for updating. The map-geo pipeline module 710 can transmitthe normalization data 344 for the map data 326, the geocoding data 328,or a combination thereof to a unified module 714.

For a different example, the POI pipeline module 712 can generate thenormalization data 344 for the POI data 330. The POI pipeline module 712can generate the normalization data 344 in a number of ways. Forexample, the POI pipeline module 712 can generate the deduplicated data340 of FIG. 3 based on eliminating a redundant instance of thenavigation external data 302. Multiple instances of the navigationexternal data 302 can be redundant as the navigation system 100 receivesthe navigation external data 302 from multiple instances of the vendor304. By generating the deduplicated data 340, the POI pipeline module712 can eliminate the redundant instance of the POI data 330.

For further example, the POI pipeline module 712 can generate thenormalization data 344 based on the deduplicated data 340, the universalformat 342, or a combination thereof. More specifically as an example,the POI pipeline module 712 can generate the normalization data 344 byincluding the POI data 330 without the redundancy, transforming the POIdata 330 according to the universal format 342, or a combinationthereof.

For additional example, the POI pipeline module 712 can generate thenormalization data 344 based on mapping the POI data 330 according toOSM schema as a node or a way, which may be a polygon if the POI data330 is closed or a multipolygon. As a result the normalization data 344can include tags to describe the feature that the normalization data 344represents. The persistent ID can be used to identify the data version320 of FIG. 3 and the tags can be compared to identify the differencesbetween multiple instances of the normalization data 344. The POIpipeline module 712 can transmit the normalization data 344 for the POIdata 330 to the unified module 714.

The navigation system 100 can include the unified module 714, which canbe coupled to the aggregation module 708. The unified module 714 storesthe normalization data 344. For example, the unified module 714 canstore the normalization data 344 under the universal format 342 thefirst storage unit 614 of FIG. 6, the second storage unit 646 of FIG. 6,or a combination thereof.

For additional example, the unified module 714 can control the dataversion 320 of the normalization data 344. More specifically as anexample, the unified module 714 can control the data version 320 bycomparing the difference between one instance of the normalization data344 and another instance of the normalization data 344 representing thesame item. The unified module 714 can transmit the normalization data344 to an optimization module 716.

The navigation system 100 can include the optimization module 716, whichcan be coupled to the unified module 714. The optimization module 716generates the aggregate changeset data 354 of FIG. 3. The aggregatechangeset data 354 can represent the navigation external data 302, thedelta data 308, or a combination thereof transformed under the universalformat 342 to update the navigation local data 310. For example, theoptimization module 716 can generate the aggregate changeset data 354based on the normalization data 344.

The optimization module 716 can generate the aggregate changeset data354 in a number of ways. For example, the optimization module 716 cangenerate the aggregate changeset data 354 based on the dimension type346 of FIG. 3, the size type 364, the changeset type 356 of FIG. 3, or acombination thereof.

For a specific example, the optimization module 716 can generate theaggregate changeset data 354 based on splitting the navigation externaldata 302 according to the dimension type 346. The optimization module716 can generate the aggregate changeset data 354 by splitting eachcontent of the normalization data 344 into, for example, the layerdimension 348 of FIG. 3, the spatial dimension 350 of FIG. 3, the timedimension 352 of FIG. 3, or a combination thereof.

For further example, the optimization module 716 can generate theaggregate changeset data 354 by splitting the each content of thenormalization data 344 represented by the changeset type 356. Thechangeset type 356 can include the map changeset data 358 of FIG. 3, thegeocoding changeset data 360 of FIG. 3, the POI changeset data 362 ofFIG. 3, the address changeset data 380 of FIG. 3, the junction viewchangeset data 382 of FIG. 3, the ADAS changeset data 384 of FIG. 3, thelandmark changeset data 386 of FIG. 3, or a combination thereof. Asdiscussed above, the optimization module 716 can generate the aggregatechangeset data 354 by splitting the map changeset data 358, thegeocoding changeset data 360, the POI changeset data 362, the addresschangeset data 380, the junction view changeset data 382, the ADASchangeset data 384, the landmark changeset data 386, or a combinationthereof into the layer dimension 348, the spatial dimension 350, thetime dimension 352, or a combination thereof.

For a different example, the optimization module 716 can generate theaggregate changeset data 354 based on the size type 364. The size type364 can include the incremental data 366, the bundle data 368, thecomplete data 370, or a combination thereof.

For example, the optimization module 716 can generate the aggregatechangeset data 354 based on the size type 364 for each of the changesettype 356. More specifically as an example, the optimization module 716can generate the map changeset data 358, the geocoding changeset data360, the POI changeset data 362, the address changeset data 380, thejunction view changeset data 382, the ADAS changeset data 384, thelandmark changeset data 386, or a combination thereof as the incrementaldata 366, the bundle data 368, the complete data 370, or a combinationthereof. The map changeset data 358 can include the size type 364 of theincremental data 366, the bundle data 368, the complete data 370, or acombination thereof. The geocoding changeset data 360 can include thesize type 364 of the incremental data 366, the bundle data 368, thecomplete data 370, or a combination thereof. The POI changeset data 362can include the size type 364 of the incremental data 366, the bundledata 368, the complete data 370, or a combination thereof.

The address changeset data 380 can include the size type 364 of theincremental data 366, the bundle data 368, the complete data 370, or acombination thereof. The junction view changeset data 382 can includethe size type 364 of the incremental data 366, the bundle data 368, thecomplete data 370, or a combination thereof. The ADAS changeset data 384can include the size type 364 of the incremental data 366, the bundledata 368, the complete data 370, or a combination thereof. The landmarkchangeset data 386 can include the size type 364 of the incremental data366, the bundle data 368, the complete data 370, or a combinationthereof.

For further example, the optimization module 716 can determine the sizetype 364 based on the data size 390 of FIG. 3 of the changeset type 356,the aggregate changeset data 354, or a combination thereof meeting orexceeding the size threshold 388. More specifically as an example, thesize threshold 388 can be divided into two tiers. If the data size 390is less than the lower instance of the size threshold 388, theoptimization module 716 can determine the size type 364 to represent theincremental data 366. If the data size 390 is greater than the higherinstance of the size threshold 388, the optimization module 716 candetermine the size type 364 to represent the complete data 370. If thedata size 390 is greater than the lower instance of the size threshold388 but less than the higher instance of the size threshold 388, theoptimization module 716 can determine the size type 364 to represent thebundle data 368.

For additional example, the optimization module 716 can determine thesize type 364 based on change in the data format of the vendor data 306.More specifically as an example, based on the change in the data formatof the vendor data 306, the navigation system 100 can no longer updatethe navigation local data 310 with the vendor data 306 because of theincompatibility between the vendor data 306 and the navigation localdata 310. As a result, the optimization module 716 can determine thesize type 364 to represent the complete data 370 for updating thenavigation local data 310 completely.

For further example, the optimization module 716 can generate theaggregate changeset data 354 based on the data difference 314 meeting orexceeding the delta threshold 312. More specifically as an example, ifthe data difference 314 meets or exceeds the delta threshold 312, theoptimization module 716 can generate the aggregate changeset data 354.If the data difference 314 is below the delta threshold 312, theoptimization module 716 can generate the individual instance of thechangeset type 356 as an update data. The optimization module 716 cantransmit the aggregate changeset data 354 to publish the aggregatechangeset data 354 to a data update service module 718.

The navigation system 100 can include the data update service module718, which can be coupled to the optimization module 716. The dataupdate service module 718 updates the navigation local data 310. Forexample, the data update service module 718 can update the navigationlocal data 310 based on applying the aggregate changeset data 354.

The data update service module 718 can update the navigation local data310 in a number of ways. The data update service module 718 can includea cloud service module 720, a local service module 722, or a combinationthereof. The cloud service module 720 and the local service module 722can function independently from one another. For example, the cloudservice module 720 can update the navigation local data 310 prior to thelocal service module 722 updating the navigation local data 310.

The data update service module 718 can include the cloud service module720. For example, the cloud service module 720 can track the dataversion 320 of the aggregate changeset data 354, the service type 372 ofFIG. 3 that the aggregate changeset data 354 can apply to, each datainstance of the changeset data 356, or a combination thereof.

For a specific example, the cloud service module 720 can track the dataversion 320 based on the timestamp 322 of FIG. 3 of the aggregatechangeset data 354. For a different example, the cloud service module720 can track the data version 320 based on the dimension type 346, thesize type 364, the changeset type 356, or a combination thereof inaddition to the timestamp 322.

For a different example, the cloud service module 720 can track the dataversion 320 based on the service type 372. The service type 372 caninclude the map service 374 of FIG. 3, the geocoding service 376 of FIG.3, the POI service 378 of FIG. 3, or a combination thereof. Morespecifically as an example, the cloud service module 720 can track thedata version 320 of the aggregate changeset data 354 by each of theservice type 372. For further example, the cloud service module 720 cantrack the data version 320 of the aggregate changeset data 354 for theservice type 372 based on the dimension type 346, the size type 364, thechangeset type 356, or a combination thereof.

The cloud service module 720 can publish the update notification 402 ofFIG. 4 based on the update availability 404 of FIG. 4, the service type372, the dimension type 346, the size type 364, the changeset type 356,or a combination thereof. More specifically as an example, each of theservice type 372 can be registered to receive the update notification402 when the update availability 404 indicates that the aggregatechangeset data 354 for the changeset type 356 is available. The cloudservice module 720 can publish the update notification 402 based on theupdate availability 404 indicating that the aggregate changeset data354, each data instance of the changeset type 356, or a combinationthereof is available.

For further example, the cloud service module 720 can publish the updatenotification 402 based on the dimension type 346, the size type 364, thechangeset type 356, or a combination thereof. More specifically as anexample, each of the service type 372 can be registered to receive theupdate notification 402 when the update availability 404 indicates thatthe aggregate changeset data 354 for the dimension type 346 isavailable. For example, when the aggregate changeset data 354 for thelayer dimension 348 is available, the cloud service module 720 canpublish the update notification 402 for the layer dimension 348.

For further example, by publishing the update notification 402, each ofthe service type 372 can retrieve the aggregate changeset data 354relevant for the given instance of the service type 372. For a specificexample, the POI service 378 can retrieve the POI changeset data 362 forthe POI data 330. For another example, the geocoding service 376 canretrieve the geocoding changeset data 360 for the geocoding data 328.For a different example, the map service 374 can retrieve the mapchangeset data 358 for the map data 326.

For further example, the cloud service module 720 can download theaggregate changeset data 354 from the cloud service module 720 based onthe allowable bandwidth consumption 408 of FIG. 4. More specifically asan example, if the allowable bandwidth consumption 408 is below theconsumption threshold 410 of FIG. 4, the cloud service module 720 candownload the aggregate changeset data 354 with the size type 364 of theincremental data 366. For another example, if the allowable bandwidthconsumption 408 meets the consumption threshold 410, the cloud servicemodule 720 can download the aggregate changeset data 354 with the sizetype 364 of the bundle data 368. For different example, if the allowablebandwidth consumption 408 is above the consumption threshold 410, thecloud service module 720 can download the aggregate changeset data 354with the size type 364 of the complete data 370.

For further example, the cloud service module 720 can download theaggregate changeset data 354 according to the changeset type 356 basedon the allowable bandwidth consumption 408 and the consumption threshold410. As discussed the changeset type 356 can include the map changesetdata 358, the geocoding changeset data 360, the POI changeset data 362,the address changeset data 380, the junction view changeset data 382,the ADAS changeset data 384, the landmark changeset data 386, or acombination thereof. If the allowable bandwidth consumption 408 is belowthe consumption threshold 410, the cloud service module 720 can downloadthe aggregate changeset data 354 with the one type of the changeset type356. For another example, if the allowable bandwidth consumption 408meets the consumption threshold 410, the cloud service module 720 candownload the aggregate changeset data 354 with more than one type of thechangeset type 356. For different example, if the allowable bandwidthconsumption 408 is above the consumption threshold 410, the cloudservice module 720 can download the aggregate changeset data 354 withall of the changeset type 356.

For additional example, the cloud service module 720 can download theaggregate changeset data 354 based on the transmission cost 412 of FIG.4, the transmission speed 416 of FIG. 4, or a combination thereof. Morespecifically as an example, if the transmission cost 412 exceeds thecost threshold 414 of FIG. 4, the cloud service module 720 can downloadthe aggregate changeset data 354 with the size type 364 of theincremental data 366. If the transmission cost 412 meets the costthreshold 414, the cloud service module 720 can download the aggregatechangeset data 354 with the size type 364 of the bundle data 368. If thetransmission cost 412 is below the cost threshold 414, the cloud servicemodule 720 can download the aggregate changeset data 354 with the sizetype 364 of the complete data 370.

For further example, if the transmission speed 416 exceeds the speedthreshold 418 of FIG. 4, the cloud service module 720 can download theaggregate changeset data 354 with the size type 364 of the complete data370. If the transmission speed 416 meets the speed threshold 418, thecloud service module 720 can download the aggregate changeset data 354with the size type 364 of the bundle data 368. If the transmission speed416 is below the speed threshold 418, the cloud service module 720 candownload the aggregate changeset data 354 with the size type 364 of theincremental data 366.

The cloud service module 720 can update the navigation local data 310based on applying the aggregate changeset data 354 in a number of ways.For example, the cloud service module 720 can update the navigationlocal data 310 based on the data version 320. More specifically as anexample, if the data version 320 of the navigation local data 310 isolder than the aggregate changeset data 354, the cloud service module720 can update the navigation local data 310 with the aggregatechangeset data 354.

For a different example, the cloud service module 720 can update thenavigation local data 310 based on the update availability 404 for eachof the changeset type 356. More specifically as an example, if thechangeset type 356 for the map changeset data 358 is available thus thedelta data 308 is identified between the navigation external data 302and the navigation local data 310, the cloud service module 720 canupdate the navigation local data 310 for the map data 326 withoutupdating the other instance of the data type 324. The cloud servicemodule 720 can update the navigation local data 310 for the POI data330, the geocoding data 328, the address data 332, the junction viewdata 334, the ADAS data 336, the landmark data 338, or a combinationthereof similarly.

For further example, the cloud service module 720 can join thenavigation local data 310 updated by the aggregate changeset data 354 tothe navigation local data 310 without the update of the aggregatechangeset data 354. For example, the navigation local data 310 for thehome area 208 can be updated by the aggregate changeset data 354. Incontrast, the navigation local data 310 outside of the home area 208 maynot be updated. For a specific example, the travel route 224 can startwithin the home area 208 extending to outside of the home area 208. Thecloud service module 720 can join the updated instance of the navigationlocal data 310 to the navigation local data 310 without the update sothat the map data 326, the POI data 330, the geocoding data 328, theaddress data 332, the junction view data 334, the ADAS data 336, thelandmark data 338, or a combination thereof can be consistent betweenthe updated instance of the navigation local data 310 and the navigationlocal data 310 without the update.

For another example, the cloud service module 720 can update thenavigation local data 310 based on the delta data 308 is below the deltathreshold 312. As discussed above, the delta threshold 312 can be set at20% for example. If the data difference 314 between the delta data 308and the delta threshold 312 meets or exceeds the delta threshold 312,the cloud service module 720 can determine the update availability 404as unavailable, thus, the navigation local data 310 is not updated withthe aggregate changeset data 354. In contrast, if the data difference314 is below the delta threshold 312, the cloud service module 720 canupdate the navigation local data 310 with the aggregate changeset data354.

It has been discovered that the navigation system 100 determining theupdate availability 404 based on the comparison of the data difference314 and the delta threshold 312 improvers the performance of the firstdevice 102, the navigation system 100, or a combination thereof. Bycomparing the data difference 314 and the delta threshold 312 prior toupdating, the navigation system 100 can ensure that the communicationpath 104 of FIG. 1 will not bottleneck, the first device 102 can handlethe data size 390 of the aggregate changeset data 354, or a combinationthereof. As a result, the first device 102, the navigation system 100,or a combination thereof will be left with additional computing resourceto handle additional tasks, thus, improving the performance of the firstdevice 102, the navigation system 100, or a combination thereof.

For a different example, the cloud service module 720 can update thenavigation local data 310 based on the navigation session 228 of FIG. 2.More specifically as an example, if the navigation session 228 to guidethe user with first device 102 is in session, the cloud service module720 can prevent the aggregate changeset data 354 from being applied tothe navigation local data 310. In contrast, if the navigation session228 is not in session, the cloud service module 720 can update thenavigation local data 310 with the aggregate changeset data 354.

For further example, the cloud service module 720 can update thenavigation local data 310 based on the navigation session 228 related tothe dimension type 346. For a specific example, the navigation session228 can be in session for a specific instance of the spatial dimension350 such as the home area 208. The cloud service module 720 can preventthe aggregate changeset data 354 from being applied to the home area 208based on the navigation session 228 being in session. In contrast, thecloud service module 720 can update the navigation local data 310 forthe other instance of the spatial dimension 350 because the navigationsession 228 for the other instance spatial dimension 350 is not insession. For a different example, the layer dimension 348 representing alake can be in session. The cloud service module 720 can prevent theaggregate changeset data 354 from being applied to the bounding box 202including the layer dimension that is in session.

For a different example, the cloud service module 720 can update thenavigation local data 310 based on the search session 230 of FIG. 2.More specifically as an example, if the search session 230 based on theuser searching for the navigation guidance 226 of FIG. 2 is in session,the cloud service module 720 can prevent the aggregate changeset data354 from being applied to the navigation local data 310. In contrast, ifthe search session 230 is not in session, the cloud service module 720can update the navigation local data 310 with the aggregate changesetdata 354.

For further example, the cloud service module 720 can update thenavigation local data 310 based on the search session 230 related to thedimension type 346. For a specific example, the search session 230 canbe in session for a specific instance of the spatial dimension 350 tosearch for the travel route 224 from the current location 220 of FIG. 2to the category of interest 232 of FIG. 2. The cloud service module 720can prevent the aggregate changeset data 354 from being applied to thespecial dimension based on the search session 230 being in session. Incontrast, the cloud service module 720 can update the navigation localdata 310 for the other instance of the spatial dimension 350 because thesearch session 230 for the other instance of the spatial dimension 350is not in session.

It has been discovered that the navigation system 100 updating thenavigation local data 310 based on the search session 230 improves theperformance of the first device 102, the navigation system 100, or acombination thereof presenting the navigation guidance 226. Bypreventing the update if the search session 230 is in session, thenavigation system 100 can seamlessly provide the navigation guidance 226without abruptly ending the navigation guidance 226 while the user ismaking the request. As a result, the navigation system 100 can improvethe performance of the first device 102, the navigation system 100, or acombination thereof delivering the navigation guidance 220 withoutinterrupting the user's request.

For a different example, the cloud service module 720 can update thenavigation local data 310 based on the layer prioritization 406 of FIG.4. More specifically as an example, the cloud service module 720 canupdate the navigation local data 310 according to the layerprioritization 406 based on the comparison of the allowable bandwidthconsumption 408 to the consumption threshold 410. For example, the layerprioritization 406 can indicate an order of priority from highest topriority to lowest priority in the following order: the map data 326,the POI data 330, the address data 332, the junction view data 334, theADAS data 336, the landmark data 338, or a combination thereof. Forfurther example, the layer prioritization 406 can indicate that anupdate to the home area 208 to have a higher priority than thegeographic space 206 excluding the home area 208.

Continuing with the example, if the allowable bandwidth consumption 408is below the consumption threshold 410, the cloud service module 720 canupdate the navigation local data 310 according to the layerprioritization 406 as discussed above. If the allowable bandwidthconsumption 408 meets or exceeds the consumption threshold 410, thecloud service module 720 can update the navigation local data 310without considering the layer prioritization 406 as discussed above.

For another example, the cloud service module 720 can update thenavigation local data 310 based on the size type 364 of the aggregatechangeset data 354, the data version 320, the allowable bandwidthconsumption 408, the transmission cost 412, the transmission speed 416,or a combination thereof. More specifically as an example, the cloudservice module 720 can apply the aggregate changeset data 354 includingthe incremental data 366, the bundle data 368, the complete data 370, ora combination thereof to update the navigation local data 310.

For further example, the data version 320 of the navigation local data310 can become corrupt. Rather than applying the incremental data 366,the cloud service module 720 can update the navigation local data 310 byreplacing the data version 320 that is corrupt with the uncorruptedinstance of the complete data 370.

For a different example, the cloud service module 720 can update thenavigation local data 310 based on a single feature of the aggregatechangeset data 354. More specifically as an example, rather thanupdating the navigation local data 310 with multiple components of thedata type 324, the dimension type 346, or a combination thereof, thecloud service module 720 can update the navigation local data 310 with asingle instance of the navigation feature 218. The navigation feature218 can be part of the incremental data 366 for updating the navigationlocal data 310. The cloud service module 720 can update the navigationlocal data 310 based on a single instance of the navigation feature 218according to the allowable bandwidth consumption 408, the transmissioncost 412, the transmission speed 416, or a combination thereof. Thecloud service module 720 can transmit the aggregate changeset data 354to an archiver module 724.

The data update service module 718 can include the local service module722, which can be coupled to the cloud service module 720. The localservice module 722 can check for the update availability 404. Morespecifically as an example, the local service module 722 can check forthe update availability 404 for the size type 364, the changeset type356, the dimension type 346, or a combination thereof.

For a specific example, the local service module 722 can check for theupdate availability 404 with the cloud service module 720. The cloudservice module 720 can transmit the aggregate changeset data 354 withthe size type 364 of the incremental data 366, the bundle data 368, thecomplete data 370, or a combination thereof. More specifically as anexample, the local service module 722 can check for the updateavailability 404 for the bounding box 202. If the update availability404 is “yes,” the cloud service module 720 can transmit the aggregatechangeset data 354 for the bounding box 202 with the size type 364 ofthe complete data 370 as an example.

The local service module 722 can publish the update notification 402based on the update availability 404, the service type 372, thedimension type 346, the size type 364, the changeset type 356, or acombination thereof. More specifically as an example, each of theservice type 372 can be registered to receive the update notification402 when the update availability 404 indicates that the aggregatechangeset data 354 for the changeset type 356 is available. The localservice module 722 can publish the update notification 402 based on theupdate availability 404 indicating that the aggregate changeset data 354for the changeset type 356 is available.

For further example, the local service module 722 can publish the updatenotification 402 based on the dimension type 346, the size type 364, thechangeset type 356, or a combination thereof. More specifically as anexample, each of the service type 372 can be registered to receive theupdate notification 402 when the update availability 404 indicates thatthe aggregate changeset data 354 for the dimension type 346 isavailable. For example, when the aggregate changeset data 354 for thelayer dimension 348 is available, the local service module 722 canpublish the update notification 402 for the layer dimension 348.

For further example, by publishing the update notification 402, each ofthe service type 372 can retrieve the aggregate changeset data 354relevant for the given instance of the service type 372. For a specificexample, the POI service 378 can retrieve the POI changeset data 362 forthe POI data 330. For another example, the geocoding service 376 canretrieve the geocoding changeset data 360 for the geocoding data 328.For a different example, the map service 374 can retrieve the mapchangeset data 358 for the map data 326.

For further example, the local service module 722 can download theaggregate changeset data 354 from the cloud service module 720 based onthe allowable bandwidth consumption 408. More specifically as anexample, if the allowable bandwidth consumption 408 is below theconsumption threshold 410, the local service module 722 can download theaggregate changeset data 354 with the size type 364 of the incrementaldata 366. For another example, if the allowable bandwidth consumption408 meets the consumption threshold 410, the local service module 722can download the aggregate changeset data 354 with the size type 364 ofthe bundle data 368. For different example, if the allowable bandwidthconsumption 408 is above the consumption threshold 410, the localservice module 722 can download the aggregate changeset data 354 withthe size type 364 of the complete data 370.

For further example, the local service module 722 can download theaggregate changeset data 354 according to the changeset type 356 basedon the allowable bandwidth consumption and the consumption threshold410. As discussed, the changeset type 356 can include the map changesetdata 358, the geocoding changeset data 360, the POI changeset data 362,the address changeset data 380, the junction view changeset data 382,the ADAS changeset data 384, the landmark changeset data 386, or acombination thereof. If the allowable bandwidth consumption 408 is belowthe consumption threshold 410, the local service module 722 can downloadthe aggregate changeset data 354 with the one of the changeset type 356.For another example, if the allowable bandwidth consumption 408 meetsthe consumption threshold 410, the local service module 722 can downloadthe aggregate changeset data 354 with more than one of the changesettype 356. For different example, if the allowable bandwidth consumption408 is above the consumption threshold 410, the local service module 722can download the aggregate changeset data 354 with all of the changesettype 356.

For additional example, the local service module 722 can download theaggregate changeset data 354 based on the transmission cost 412, thetransmission speed 416, or a combination thereof. More specifically asan example, if the transmission cost 412 exceeds the cost threshold 414,the local service module 722 can download the aggregate changeset data354 with the size type 364 of the incremental data 366. If thetransmission cost 412 meets the cost threshold 414, the local servicemodule 722 can download the aggregate changeset data 354 with the sizetype 364 of the bundle data 368. If the transmission cost 412 is belowthe cost threshold 414, the local service module 722 can download theaggregate changeset data 354 with the size type 364 of the complete data370.

For further example, if the transmission speed 416 exceeds the speedthreshold 418, the local service module 722 can download the aggregatechangeset data 354 with the size type 364 of the complete data 370. Ifthe transmission speed 416 meets the speed threshold 418, the localservice module 722 can download the aggregate changeset data 354 withthe size type 364 of the bundle data 368. If the transmission speed 416is below the speed threshold 418, the local service module 722 candownload the aggregate changeset data 354 with the size type 364 of theincremental data 366.

The local service module 722 can update the navigation local data 310based on applying the aggregate changeset data 354 in a number of ways.For example, the local service module 722 can update the navigationlocal data 310 based on the data version 320. More specifically as anexample, if the data version 320 of the navigation local data 310 isolder than the aggregate changeset data 354, the local service module722 can update the navigation local data 310 with the aggregatechangeset data 354.

For a different example, the local service module 722 can update thenavigation local data 310 based on the update availability 404 for eachof the changeset type 356. More specifically as an example, if thechangeset type 356 for the map changeset data 358 is available thus thedelta data 308 is identified between the navigation external data 302and the navigation local data 310, the local service module 722 canupdate the navigation local data 310 for the map data 326 withoutupdating the other instance of the data type 324. The local servicemodule 722 can update the navigation local data 310 for the POI data330, the geocoding data 328, the address data 332, the junction viewdata 334, the ADAS data 336, the landmark data 338, or a combinationthereof similarly.

For further example, the local service module 722 can join thenavigation local data 310 updated by the aggregate changeset data 354 tothe navigation local data 310 without the aggregate changeset data 354being applied. For example, the navigation local data 310 for the homearea 208 can be updated by the aggregate changeset data 354. Incontrast, the navigation local data 310 outside of the home area 208 maynot be updated. For a specific example, the travel route 224 can startwithin the home area 208 extending to outside of the home area 208. Thelocal service module 722 can join the updated instance of the navigationlocal data 310 to the navigation local data 310 without the update sothat the map data 326, the POI data 330, the geocoding data 328, theaddress data 332, the junction view data 334, the ADAS data 336, thelandmark data 338, or a combination thereof can be consistent betweenthe updated instance of the navigation local data 310 and the navigationlocal data 310 without the update.

For another example, the local service module 722 can update thenavigation local data 310 based on the delta data 308 is below the deltathreshold 312. As discussed above, the delta threshold 312 can be set at20% for example. If the data difference 314 meets or exceeds the deltathreshold 312, the local service module 722 can determine the updateavailability 404 as unavailable, thus, the navigation local data 310 isnot updated with the aggregate changeset data 354. In contrast, if thedata difference 314 is below the delta threshold 312, the local servicemodule 722 can update the navigation local data 310 with the aggregatechangeset data 354.

It has been discovered that the navigation system 100 determining theupdate availability 404 based on the comparison of the data difference314 and the delta threshold 312 improvers the performance of the firstdevice 102, the navigation system 100, or a combination thereof. Bycomparing the data difference 314 and the delta threshold 312 prior toupdating, the navigation system 100 can ensure that the communicationpath 104 of FIG. 1 will not bottleneck, the first device 102 can handlethe data size 390 of the aggregate changeset data 354, or a combinationthereof. As a result, the first device 102, the navigation system 100,or a combination thereof will be left with additional computing resourceto handle additional tasks, thus, improving the

For a different example, the local service module 722 can update thenavigation local data 310 based on the navigation session 228. Morespecifically as an example, if the navigation session 228 to guide theuser with first device 102 is in session, the local service module 722can prevent the aggregate changeset data 354 from being applied to thenavigation local data 310. In contrast, if the navigation session 228 isnot in session, the local service module 722 can update the navigationlocal data 310 with the aggregate changeset data 354.

For further example, the local service module 722 can update thenavigation local data 310 based on the navigation session 228 related tothe dimension type 346. For a specific example, the navigation session228 can be in session for a specific instance of the spatial dimension350 such as the home area 208. The local service module 722 can preventthe aggregate changeset data 354 from being applied to the home area 208based on the navigation session 228 being in session. In contrast, thelocal service module 722 can update the navigation local data 310 forthe other instance of the spatial dimension 350 because the navigationsession 228 for the other instance spatial dimension 350 is not insession. For a different example, the layer dimension 348 representing alake can be in session. The local service module 722 can prevent theaggregate changeset data 354 from being applied to the bounding box 202including the layer dimension that is in session.

For a different example, the local service module 722 can update thenavigation local data 310 based on the search session 230. Morespecifically as an example, if the search session 230 based on the usersearching for the navigation guidance 226 is in session, the localservice module 722 can prevent the aggregate changeset data 354 frombeing applied to the navigation local data 310. In contrast, if thesearch session 230 is not in session, the local service module 722 canupdate the navigation local data 310 with the aggregate changeset data354.

For further example, the local service module 722 can update thenavigation local data 310 based on the search session 230 related to thedimension type 346. For a specific example, the search session 230 canbe in session for a specific instance of the spatial dimension 350 tosearch for the travel route 224 of FIG. 2 from the current location 220to the target destination 222 of FIG. 2. The local service module 722can prevent the aggregate changeset data 354 from being applied to thespecial dimension based on the search session 230 being in session. Incontrast, the local service module 722 can update the navigation localdata 310 for the other instance of the spatial dimension 350 because thesearch session 230 for the other instance of the spatial dimension 350is not in session.

It has been discovered that the navigation system 100 updating thenavigation local data 310 based on the search session 230 improves theperformance of the first device 102, the navigation system 100, or acombination thereof presenting the navigation guidance 226. Bypreventing the update if the search session 230 is in session, thenavigation system 100 can seamlessly provide the navigation guidance 226without abruptly ending the navigation guidance 226 while the user ismaking the request. As a result, the navigation system 100 can improvethe performance of the first device 102, the navigation system 100, or acombination thereof delivering the navigation guidance 220 withoutinterrupting the user's request.

For a different example, the local service module 722 can update thenavigation local data 310 based on the layer prioritization 406. Morespecifically as an example, the local service module 722 can update thenavigation local data 310 according to the layer prioritization 406based on the comparison of the allowable bandwidth consumption 408 tothe consumption threshold 410. For example, the layer prioritization 406can indicate an order of priority from highest to priority to lowestpriority in the following order: the map data 326, the POI data 330, theaddress data 332, the junction view data 334, the ADAS data 336, thelandmark data 338, or a combination thereof. For further example, thelayer prioritization 406 can indicate that an update to the home area208 to have a higher priority than the geographic space 206 other thanthe home area 208.

Continuing with the example, if the allowable bandwidth consumption 408is below the consumption threshold 410, the local service module 722 canupdate the navigation local data 310 according to the layerprioritization 406 as discussed above. If the allowable bandwidthconsumption 408 meets or exceeds the consumption threshold 410, thelocal service module 722 can update the navigation local data 310without considering the layer prioritization 406 as discussed above.

For another example, the local service module 722 can update thenavigation local data 310 based on the size type 364 of the aggregatechangeset data 354, the data version 320, the allowable bandwidthconsumption 408, or a combination thereof. More specifically as anexample, the local service module 722 can apply the aggregate changesetdata 354 including the incremental data 366, the bundle data 368, thecomplete data 370, or a combination thereof to update the navigationlocal data 310.

For further example, the data version 320 of the navigation local data310 can become corrupt. Rather than applying the incremental data 366,the local service module 722 can update the navigation local data 310 byreplacing the data version 320 that is corrupt with the uncorruptedinstance of the complete data 370.

For a different example, the local service module 722 can update thenavigation local data 310 based on a single feature of the aggregatechangeset data 354. More specifically as an example, rather thanupdating the navigation local data 310 with multiple components of thedata type 324, the dimension type 346, or a combination thereof, thelocal service module 722 can update the navigation local data 310 with asingle instance of the navigation feature 218. The navigation feature218 can be part of the incremental data 366 for updating the navigationlocal data 310. The local service module 722 can update the navigationlocal data 310 based on a single instance of the navigation feature 218according to the allowable bandwidth consumption 408, the transmissioncost 412, the transmission speed 416, or a combination thereof. Thelocal service module 722 can transmit the aggregate changeset data 354to an archiver module 724. The local service module 722 can transmit theaggregate changeset data 354 to an archiver module 724.

The navigation system 100 can include an archiver module 724, which canbe coupled to the data update service module 718. The archiver module724 stores the aggregate changeset data 354. For example, the archivermodule 724 can store the aggregate changeset data 354 by indexing theaggregate changeset data 354 in the first storage unit 614, the secondstorage unit 646, or a combination thereof.

The archiver module 724 can store the aggregate changeset data 354 in anumber of ways. For example, the archiver module 724 can index theaggregate changeset data 354 based on the size type 364. Morespecifically as an example, the archiver module 724 can index theaggregate changeset data 354 based on the incremental data 366, thebundle data 368, the complete data 370, or a combination thereof. Forfurther example, the archiver module 724 can index the aggregatechangeset data 354 based on the size type 364, the changeset type 356,the dimension type 346, or a combination thereof.

For a different example, the archiver module 724 can hash the aggregatechangeset data 354. More specifically as an example, by creating thecryptographic hash, for example, SHA-256/512, for the aggregatechangeset data 354, the archiver module 724 can generate the aggregatechangeset data 354 to ensure the integrity and the tamper-resistantinstance of the aggregate changeset data 354.

For another example, the archiver module 724 can rollup the aggregatechangeset data 354 periodically. More specifically as an example, thearchiver module 724 can rollup the aggregate changeset data 354 wherethe data size 390 can be saved significantly. For a different example,the archiver module 724 can backup and restore the aggregate changesetdata 354. More specifically as an example, the archiver module 724 canback up the aggregate changeset data 354 including the metadata.

The navigation system 100 can include a presenter module 726, which canbe coupled to the data update service module 718. The presenter module726 presents the navigation local data 310 updated. For example, thepresenter module 726 can display the navigation local data 310 with thedimension type 346 of the spatial dimension 350 representing the homearea 208 being updated by the map changeset data 358.

The physical transformation from traveling from one instance of thebounding box 202 to another instance of the bounding box 202 bytraversing along the travel route 224 results in the movement in thephysical world, such as people using the first device 102, the vehicle,or a combination thereof, based on the operation of the navigationsystem 100. As the movement in the physical world occurs, the movementitself creates additional information that is transformed from physicalaspect to digital data for further generation of the aggregate changesetdata 354 to update the navigation local data 310 to provide thenavigation guidance 226 for the continued operation of the navigationsystem 100 and to continue the movement in the physical world.

The first software 626 of FIG. 6 of the first device 102 of FIG. 6 caninclude the modules for the navigation system 100. For example, thefirst software 626 can include the box module 702, the data load module704, the diff generation module 706, the aggregation module 708, theunified module 714, the optimization module 716, the data update servicemodule 718, the archiver module 724, and the presenter module 726. Thefirst control unit 612 of FIG. 6 can execute the modules to perform thefunctions dynamically and in real time.

The first control unit 612 can execute the first software 626 for thebox module 702 to calculate the bounding box 202. The first control unit612 can execute the first software 626 for the data load module 704 toreceive the navigation external data 302. The first control unit 612 canexecute the first software 626 for the diff generation module 706 tocompute the data difference 314.

The first control unit 612 can execute the first software 626 for theaggregation module 708 to generate the normalization data 344. The firstcontrol unit 612 can execute the first software 626 for the unifiedmodule 714 to store the normalization data 344. The first control unit612 can execute the first software 626 for the optimization module 716to generate the aggregate changeset data 354.

The first control unit 612 can execute the first software 626 for thedata update service module 718 to update the navigation local data 310.The first control unit 612 can execute the first software 626 for thearchiver module 724 to store the aggregate changeset data 354. The firstcontrol unit 612 can execute the first software 626 for the presentermodule 726 to present the updated instance of the navigation local data310.

The second software 642 of FIG. 6 of the first device 102 of FIG. 6 caninclude the modules for the navigation system 100. For example, thesecond software 642 can include the box module 702, the data load module704, the diff generation module 706, the aggregation module 708, theunified module 714, the optimization module 716, the data update servicemodule 718, the archiver module 724, and the presenter module 726. Thesecond control unit 634 of FIG. 6 can execute the modules to perform thefunctions dynamically and in real time.

The second control unit 634 can execute the second software 642 for thebox module 702 to calculate the bounding box 202. The second controlunit 634 can execute the second software 642 for the data load module704 to receive the navigation external data 302. The second control unit634 can execute the second software 642 for the diff generation module706 to compute the data difference 314.

The second control unit 634 can execute the second software 642 for theaggregation module 708 to generate the normalization data 344. Thesecond control unit 634 can execute the second software 642 for theunified module 714 to store the normalization data 344. The secondcontrol unit 634 can execute the second software 642 for theoptimization module 716 to generate the aggregate changeset data 354.

The second control unit 634 can execute the second software 642 for thedata update service module 718 to update the navigation local data 310.The second control unit 634 can execute the second software 642 for thearchiver module 724 to store the aggregate changeset data 354. Thesecond control unit 634 can execute the second software 642 for thepresenter module 726 to present the updated instance of the navigationlocal data 310.

The modules of the navigation system 100 can be partitioned between thefirst software 626 and the second software 642. The second software 642can include the box module 702, the data load module 704, the diffgeneration module 706, the aggregation module 708, the unified module714, the optimization module 716, the data update service module 718,and the archiver module 724. The second control unit 634 can executemodules partitioned on the second software 642 as previously described.

The first software 626 can include the presenter module 726. Based onthe size of the first storage unit 614, the first software 626 caninclude additional modules of the navigation system 100. The firstcontrol unit 612 can execute the modules partitioned on the firstsoftware 626 as previously described. For a different example, thesecond software 642 can include the box module 702, the data load module704, the diff generation module 706, the aggregation module 708, theunified module 714, and the optimization module 716. The first software626 can include the presenter module 726, the data update service module718, and the archiver module 724.

It has been discovered that the navigation system 100 having differentconfiguration of a distributed architecture to actuate each module onthe first device 102 or the second device 106 enhances the capability ofthe navigation system 100 to receive the navigation external data 302,generate the aggregate changeset data 354, and update the navigationlocal data 310. By having the distributed architecture, the navigationsystem 100 can enable load distribution of receiving the navigationexternal data 302, transmitting the aggregate changeset data 354, or acombination thereof to reduce congestion in bottleneck in thecommunication path 104 of FIG. 6 and enhance accessibility of theaggregate changeset data 354 in the cloud resource or local resource toefficiently update the navigation local data 310. As a result, thenavigation system 100 can improve the performance to update thenavigation local data 310 to present the accurate instance of thenavigation local data 310 more rapidly for safer operation of the firstdevice 102, the vehicle, or a combination thereof.

The first control unit 612 can operate the first communication unit 616of FIG. 6 to transmit the bounding box 202, the navigation external data302, the data difference 314, the normalization data 344, the aggregatechangeset data 354, the navigation local data 310, or a combinationthereof to or from the second device 106 through the communication path104. The first control unit 612 can operate the first software 626 tooperate the location unit 620 of FIG. 6. The second control unit 634 canoperate the second communication unit 636 of FIG. 6 to transmit thebounding box 202, the navigation external data 302, the data difference314, the normalization data 344, the aggregate changeset data 354, thenavigation local data 310, or a combination thereof to or from the firstdevice 102 through the communication path 104.

The navigation system 100 describes the module functions or order as anexample. The modules can be partitioned differently. For example, thedata update service module 718 and the archiver module 724 can becombined. Each of the modules can operate individually and independentlyof the other modules. Furthermore, data generated in one module can beused by another module without being directly coupled to each other. Forexample, the aggregation module 708 can receive the bounding box 202from the box module 702. Further, one module transmitting to anothermodule can represent one module communicating, sending, receiving, or acombination thereof the data generated to or from another module.

The modules described in this application can be hardware implementationor hardware accelerators in the first control unit 612 or in the secondcontrol unit 634. The modules can also be hardware implementation orhardware accelerators within the first device 102 or the second device106 but outside of the first control unit 612 or the second control unit634, respectively as depicted in FIG. 6. However, it is understood thatthe first control unit 612, the second control unit 634, or acombination thereof can collectively refer to all hardware acceleratorsfor the modules. Furthermore, the first control unit 612, the secondcontrol unit 634, or a combination thereof can be implemented assoftware, hardware, or a combination thereof.

The modules described in this application can be implemented asinstructions stored on a non-transitory computer readable medium to beexecuted by the first control unit 612, the second control unit 634, ora combination thereof. The non-transitory computer medium can includethe first storage unit 614, the second storage unit 646 of FIG. 6, or acombination thereof. The non-transitory computer readable medium caninclude non-volatile memory, such as a hard disk drive, non-volatilerandom access memory (NVRAM), solid-state storage device (SSD), compactdisk (CD), digital video disk (DVD), or universal serial bus (USB) flashmemory devices. The non-transitory computer readable medium can beintegrated as a part of the navigation system 100 or installed as aremovable portion of the navigation system 100.

Referring now to FIG. 8, therein is shown a flow chart of a method 800of operation of the navigation system 100 in a further embodiment of thepresent invention. The method 800 includes: receiving a navigationexternal data including a vendor data, a delta data, or a combinationthereof in a block 802; generating a normalization data with a controlunit based on transforming the navigation external data according touniversal format in a block 804; generating an aggregation changesetdata by splitting the normalization data into each instance of adimension type in a block 806; and updating a navigation local data byapplying the aggregation changeset data according to a layerprioritization for presenting the navigation local data on a device in ablock 808.

The resulting method, process, apparatus, device, product, and/or systemis straightforward, cost-effective, uncomplicated, highly versatile,accurate, sensitive, and effective, and can be implemented by adaptingknown components for ready, efficient, and economical manufacturing,application, and utilization. Another important aspect of the presentinvention is that it valuably supports and services the historical trendof reducing costs, simplifying systems, and increasing performance.These and other valuable aspects of the present invention consequentlyfurther the state of the technology to at least the next level.

While the invention has been described in conjunction with a specificbest mode, it is to be understood that many alternatives, modifications,and variations will be apparent to those skilled in the art in light ofthe aforegoing description. Accordingly, it is intended to embrace allsuch alternatives, modifications, and variations that fall within thescope of the included claims. All matters hithertofore set forth hereinor shown in the accompanying drawings are to be interpreted in anillustrative and non-limiting sense.

What is claimed is:
 1. A method of operation of a navigation systemcomprising: receiving a navigation external data including a vendordata, a delta data, or a combination thereof; generating a normalizationdata with a control unit based on transforming the navigation externaldata according to universal format; generating an aggregation changesetdata by splitting the normalization data into each instance of adimension type; and updating a navigation local data by applying theaggregation changeset data according to a layer prioritization forpresenting the navigation local data on a device.
 2. The method asclaimed in claim 1 further comprising downloading the aggregationchangeset data based on comparing an allowable bandwidth consumption toa consumption threshold.
 3. The method as claimed in claim 1 whereinupdating the navigation local data includes updating the navigationlocal data based on an update availability for each of a changeset type.4. The method as claimed in claim 1 wherein updating the navigationlocal data includes updating the navigation local data based on thedelta data below a delta threshold.
 5. The method as claimed in claim 1further comprising computing a data difference by identifying the deltadata between the navigation external data and the navigation local data.6. The method as claimed in claim 1 further comprising preventing theaggregation changeset data from being applied to the navigation localdata if a navigation session is in session.
 7. The method as claimed inclaim 1 further comprising preventing the aggregation changeset datafrom being applied to the navigation local data if a search session isin session.
 8. The method as claimed in claim 1 further comprisingdownloading the aggregation changeset data according to a changeset typebased on comparing an allowable bandwidth consumption to a consumptionthreshold.
 9. The method as claimed in claim 1 further comprisingdownloading the aggregation changeset data based on comparing atransmission speed to a speed threshold.
 10. The method as claimed inclaim 1 further comprising downloading the aggregation changeset databased on a transmission cost to a cost threshold.
 11. A navigationsystem comprising: a communication unit for receiving a navigationexternal data including a vendor data, a delta data, or a combinationthereof; and a control unit, coupled to the communication unit, for:generating a normalization data based on transforming the navigationexternal data according to universal format; generating an aggregationchangeset data by splitting the normalization data into each instance ofa dimension type; and updating a navigation local data by applying theaggregation changeset data according to a layer prioritization forpresenting the navigation local data on a device.
 12. The system asclaimed in claim 11 wherein the control unit is for downloading theaggregation changeset data based on comparing an allowable bandwidthconsumption to a consumption threshold.
 13. The system as claimed inclaim 11 wherein the control unit is for updating the navigation localdata based on an update availability for each of a changeset type. 14.The system as claimed in claim 11 wherein the control unit is forupdating the navigation local data based on the delta data below a deltathreshold.
 15. The system as claimed in claim 11 wherein the controlunit is for updating the navigation local data based on the delta databelow a delta threshold.
 16. A non-transitory computer readable mediumincluding instructions for execution, the instructions comprising:receiving a navigation external data including a vendor data, a deltadata, or a combination thereof; generating a normalization data based ontransforming the navigation external data according to universal format;generating an aggregation changeset data by splitting the normalizationdata into each instance of a dimension type; and updating a navigationlocal data by applying the aggregation changeset data according to alayer prioritization for presenting the navigation local data on adevice.
 17. The non-transitory computer readable medium as claimed inclaim 16 further comprising downloading the aggregation changeset databased on comparing an allowable bandwidth consumption to a consumptionthreshold.
 18. The non-transitory computer readable medium as claimed inclaim 16 wherein updating the navigation local data includes updatingthe navigation local data based on an update availability for each of achangeset type.
 19. The non-transitory computer readable medium asclaimed in claim 16 wherein updating the navigation local data includesupdating the navigation local data based on the delta data below a deltathreshold.
 20. The non-transitory computer readable medium as claimed inclaim 16 further comprising computing a data difference by identifyingthe delta data between the navigation external data and the navigationlocal data.